JAVA之所以被開發,是要達到以下五個目的:
1.應當使用物件導向程式設計方法學
2.應當允許同一程式在不同的電腦平台執行
3.應當包括內建的對電腦網路的支援
4.應當被設計成安全地執行遠端程式碼
5.應當易於使用,並借鑑以前那些物件導向語言(如C++)的長處。
而JAVA技術主要分成幾個部分:JAVA語言、JAVA執行環境、類別庫。一般我們在說JAVA時並不會是特別指稱哪一部分。
JAVA語言有以下幾種特性:
1.物件導向
JAVA的特點之一是物件導向。「物件導向程式設計語言」就是開發者在設計軟體的時候可以使用自訂的類型和關聯操作,程式碼和資料的集合體叫做「物件」。
一個物件可以想像成繫結了很多「程式碼」和「資料」。物件導向設計讓大型軟體工程的計劃和設計變得更容易管理,能增強程式的健康度,減少工程失敗的數量。
2.跨平台性
這項特性能使我們在使用JAVA語言編譯一段程式碼後,能於任何硬體設施中執行這段程式碼,甚至是不需要任何一點更改。而執行JAVA時需要安裝JAVA 執行時環境(Java Runtime Environment,JRE),否則就無法執行JAVA的程式。
實現跨平台性的方法是大多數編譯器在進行JAVA 語言程式的編碼時候會生成一個用位元組碼寫成的「半成品」,這個「半成品」會在Java虛擬機器(解釋層)的幫助下執行,虛擬機器會把它轉換成目前所處硬體平台的原始程式碼。
3.自動垃圾回收
大多數C++編譯器不支援垃圾收集機制,如果物件是在堆疊上分配的,而程式員又忘記進行刪除,那麼就會造成記憶體洩漏(Memory Leak),這會造成一種現象,程式運行的時候可能會生成很多不清除的垃圾,浪費了不必要的記憶體空間,且若是同一個記憶體位址被刪除兩次的話,程式會變得不穩定,甚至崩潰。
JAVA 語言則不同,上述的情況被自動垃圾收集功能自動處理。物件的建立和放置都是在記憶體堆疊上面進行的。當一個物件沒有任何參照的時候,JAVA 的自動垃圾收集機制就發揮作用,自動刪除這個物件所佔用的空間,釋放記憶體以避免記憶體洩漏。但是記憶體洩漏並不是就此避免了,當程式員疏忽大意地忘記解除一個物件不應該有的參照時,記憶體洩漏仍然不可避免。